// 这个文件是api配置文件，一般是放在utils文件夹里面，文件名也可以取request.js等都可以。
// github.com/axios/axios找interce,找到Interceptors，把代码拷贝进来：
import axios from 'axios'

// 请求拦截
axios.interceptors.request.use(

    function(config) {
        // Do something before request is sent
        // 处理响应成功
        const token = localStorage.getItem("token")
        config.headers.Authorization = `Bearer ${token}`
        return config;
    },

    function(error) {
        // Do something with request error
        // 处理响应错误
        const { status } = error.response
        if (status === 401) {
            localStorage.removeItem("token")
            window.location.href = "#/login"
        }
        return Promise.reject(error);
    });



// Add a response interceptor
// response interceptor 响应拦截
axios.interceptors.response.use(function(response) {
    // Any status code that lie within the range of 2xx cause this function to trigger
    // Do something with response data

    // console.log(response.headers)
    const { authorization } = response.headers
    authorization && localStorage.setItem("token", authorization)

    return response;
}, function(error) {
    // Any status codes that falls outside the range of 2xx cause this function to trigger
    // Do something with response error
    const { status } = error.response
    if (status === 401) {
        window.location.href = "#/login"
    }
    return Promise.reject(error);
});